<?php
$zagol='Восстановить пароль';
include ('header.php');
if ($auth!='1') {
	
	
	
	/*
	for($i=48;$i<123;$i++) {
		$nps['i']=chr($snp['i']);
		if ($i>57 && $i<65) continue;
		if ($i>90 && $i<97) continue;
		echo '<br>'.$i.': ';
	echo chr($i);}*/
	
	
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} } //заносим введенный пользователем e-mail, если он пустой, то уничтожаем переменную
if (isset($email) && $act!='submit') {//если существуют необходимые переменные  
	
	if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,4}/i", $email)) {echo"<div class='error'>Неверно введен е-mail!</div>";} else {
	$cryptmail=base64_encode($email);
	$result = sql_query("SELECT id, login FROM user WHERE email='$cryptmail' AND activation='1'") or die(mysql_error());//такой ли у пользователя е-мейл
	$myrow = mysql_fetch_array($result);
	
	if (empty($myrow['id']) or $myrow['id']=='') {
		//если активированного пользователя с таким логином и е-mail адресом нет
		exit ("Пользователя с таким e-mail адресом не обнаружено ни в одной базе ЦРУ :) <a href='index.php'>Главная страница</a>");
		}
	//если пользователь с таким логином и е-мейлом найден, то необходимо сгенерировать для него случайный пароль, обновить его в базе и отправить на е-мейл
	for($i=1;$i<7;$i++) {
	$snp['i']=rand(48, 122);
	if ($snp['i']>57 && $snp['i']<65) {$i--;continue;}
	if ($snp['i']>90 && $snp['i']<97) {$i--;continue;}
	$np=$np.chr($snp['i']);}
	//echo '---'.$np.'---';	
	$cryptpass=cryptpass($np,$salt);
	//echo '<br>';
	$login=$myrow['login'];
	echo 'Новый пароль выслан на Ваш e-mail:'.$email;
	echo '<br />';
	//формируем сообщение
	
$siddb = sql_query ("SELECT id FROM user WHERE login='$login'");//извлекаем идентификатор пользователя. Благодаря ему у нас и будет уникальный код активации, ведь двух одинаковых идентификаторов быть не может.
$sid = mysql_fetch_array($siddb);
$activation = md5($sid['id']);
	//echo $activation.$cryptpass;
	echo '<br>';
	$subject = "Восстановление пароля";//тема сообщения
$message = "Здравствуйте! Вы запросили восстановление пароля на http://etk.org.ru \n\nВаш логин: ".$login." \nВАШ НОВЫЙ ПАРОЛЬ: ".$np." \n
Перейдите по ссылке, чтобы активировать новый пароль:\n http://etk.org.ru/pass.php?act=submit&login=".$login."&code=".$activation.$cryptpass."  \n\n
\n или на странице  http://etk.org.ru/pass.php?act=submit введите данные:    \n
Логин:   ".$login."             \n
Код подтверждения:  ".$activation.$cryptpass."  \n\n
---------------------------------------------\n
Если вы не заказывали восстановление пароля, просто проигнорируйте данное письмо.\n
---------------------------------------------\n
\nС уважением,\n
Администрация http://etk.org.ru";//содержание сообщение
mail($email, $subject, $message, 'From:'.$adminmail);//отправляем сообщение
echo "<br /> <big> <a href='index.php'>Главная страница</a></big>"; 
	//echo "<html><head><meta http-equiv='Refresh' content='5; URL=index.php'></head><body>На Ваш e-mail отправлено письмо с паролем. Вы будете перемещены через 5 сек. Если не хотите ждать, то <a href='index.php'>нажмите сюда.</a></body></html>";//перенаправляем пользователя
	}}

else if ($act=='submit') {
	
	$login = mysql_real_escape_string($_GET['login']);
$code = mysql_real_escape_string($_GET['code']);
$loginlen=mb_strlen($login);
$codelen=mb_strlen($code);



if (isset($_GET['login'])) {echo 'Логин найден! <br />'; } //логин,который нужно активировать
else
{ echo "Вы зашил на страницу без логина!<br />";
$form='1';
if ($act!='1'){
echo '
<form action="#" method="get" name="activation">
	<dl>

		<dt class="dtreg"><b>*</b>Логин:</dt>
		<dd class="ddreg"><input type="text" name="login" maxlength="12" size="22" /></dd>
	</dl>
	<dl>

		<dt class="dtreg"><b>*</b>Код подтверждения:</dt>
		<dd class="ddreg"><input type="text" name="code" size="22" />(Отправлен на e-mail)</dd>
	</dl>
<input type="hidden" name="act" value="submit" />	
<input type="submit" value="Подтвердить" />
</form>
<b>*-Обязательно для заполнения</b><br />
';};} //если не указали логин, то выдаем ошибку


if (isset($_GET['code'])) {echo 'Код подтверждения найден! <br />';} //код подтверждения
else
{ echo "Вы зашил на страницу без кода подтверждения!<br />";
if ($form!='1' && $act!='1')
{echo '
<form action="#" method="get" name="activation">
	<dl>
		<dt class="dtreg"><b>*</b>Логин:</dt>
		<dd class="ddreg"><input type="text" name="login" maxlength="12" size="22" /></dd>
	</dl>
	<dl>
		<dt class="dtreg"><b>*</b>Код подтверждения:</dt>
		<dd class="ddreg"><input type="text" name="code" size="22" />(Отправлен на e-mail)</dd>
	</dl>
<input type="hidden" name="act" value="submit" />	
<input type="submit" value="Подтвердить" />
</form>
<b>*-Обязательно для заполнения</b><br />
';};} //если не указали code, то выдаем ошибку

$result = sql_query("SELECT id FROM user WHERE login='$login'"); //извлекаем идентификатор пользователя с данным логином
$myrow = mysql_fetch_array($result);
$activation = md5($myrow['id']);//создаем такой же код подтверждения
$np=substr($code, 32, 32);
$cp=substr($code, 0, 32);
if ($activation == $cp) {//сравниваем полученный из url и сгенерированный код
	//sql_query("UPDATE user SET pass='$np;' WHERE login='$login'");//если равны, то активируем пользователя
	echo "<br /><div class='error'> Ваш пароль изменен! Теперь вы можете зайти на сайт под своим логином и НОВЫМ паролем! <br /> <a href='index.php'>Главная страница</a></div>";
	$act='1';
	sql_query("UPDATE user SET pass='$np' WHERE login='$login'");// обновили в базе
	}
else {echo "<div class='error'>Ошибка! Ваш Е-мейл не подтвержден! <br />Данные не верны!<br /> <a href='index.php'>Главная страница</a></div>";}
//если же полученный из url и сгенерированный код не равны, то выдаем ошибку
}

else {//если данные еще не введены
echo '
<h2>Забыли пароль?</h2>
<form action="#" method="post">
Введите Ваш E-mail: <br><input type="text" name="email"><br><br>
<input type="submit" name="submit" value="Восстановить">
';
}}
else {echo 'Авторизован-значит помнишь пароль ;-)';}
include ('footer.php');
?>